This invention relates to automated data storage libraries which access data storage media in response to commands from external host systems, and, more particularly, to maintaining updated code levels for an automated data storage library.
Automated data storage libraries provide a means for storing large quantities of data in data storage media that are not permanently mounted on data storage drives, and that are stored in a readily available form on storage shelves. One or more robot accessors retrieve selected data storage media from storage shelves and provide them to data storage drives. Typically, data stored on data storage media of an automated data storage library, once requested, is needed quickly. Thus, it is desirable that an automated data storage library be maintained in an operational condition as much as possible, such as the well known xe2x80x9c24xc3x977xc3x97365xe2x80x9d availability.
Automated data storage libraries are typically operated by one or more processors, such as a central controller which interfaces with the host systems through an external interface, and provides a constantly updated inventory of the locations of the data storage media within the library, and a robot control system which identifies precise locations of the data storage drives and the storage shelves, and calculates the best operation of the robot accessor(s) to efficiently transport data storage media between the various storage shelves and data storage drives. The processors are run by program code, often called xe2x80x9cfirmwarexe2x80x9d, since the code is related to the hardware constituting the library. Often, the firmware requires updating, for example, if a new or updated function or apparatus is provided to the library.
It is known that updates may be provided for applications running on computer processors, such as discussed by U.S. Pat. Nos. 5,732,275 and 5,764,992. However, such updates are to applications that do not constitute the xe2x80x9cprimary functionxe2x80x9d of the computer processor, such that the xe2x80x9cprimary functionxe2x80x9d continues while the application is updated. Further, automated data storage libraries are typically stand alone devices, without redundant libraries, such that any interruption of the primary function of an automated data storage library must be minimized, yet the firmware of the processor(s) conducting the primary function must be kept in an updated state. A firmware update may be provided to a library by known means, such as at an external interface or by means of a CD ROM or other input. If the library is nodal, comprising distributed processors, the individual processors or associated memories may be interchanged with updated modules. Rather than change all nodes or update a node via an external interface, it is known that proper firmware levels may be maintained in a nodal system, such as an automated data storage library, as is discussed in copending U.S. patent application Ser. No. 09/755,832, filed Jan. 5, 2001.
In the event of a required update to the firmware of a processor, or of processors, operating the library, the library is typically idle for the duration of time while the update is loaded at the processor, or processors, of the library. Also typically, during the firmware update and subsequent reset, data storage media might be manually moved, removed or added. As the result, the data storage media may have to be reinventoried when the library comes up.
Additionally, should the update occur while the robot accessor(s) are moving or are away from the home position, the precise location of each robot accessor will be lost, such that it must hunt for a start location at a very slow rate to insure against collision, extending the effective downtime of the library.
It is an object of the present invention to provide a firmware update of an automated data storage library, while minimizing the time that the library is off-line.
Another object of the present invention is to allow communication with attached host systems while firmware is being updated, the communication indicating that the library will soon be on-line.
A further object of the present invention is to avoid having the robot accessor extend the effective downtime of the library.
A still further object of the present invention is to prevent loss of the inventory of the data storage media located in the library during a firmware update.
In accordance with the present invention, an automated data storage library, at least one processor of the library, a processor node of a plurality of processor nodes, a method, and computer readable program code provide a transparent code update for the library processor(s).
An automated data storage library is arranged for accessing data storage media in response to commands from at least one external host system, and comprises a plurality of storage shelves for storing data storage media; at least one data storage drive for reading and/or writing data with respect to the data storage media; at least one robot accessor for transporting the data storage media between the plurality of storage shelves and the data storage drive(s); at least one external interface for communicating with the external host system(s); at least one processor node, processor node(s) having at least a processor, the processor operating from a current code image; and at least one nonvolatile memory, each associated with at least one of the processor nodes.
In an embodiment of the present invention, the automated data storage library, via its processor node(s), receives a code update image while operating the automated data storage library, and stores the code update image in memory. During and subsequent to receiving the code update image, the automated data storage library continues to operate. The library determines, optionally within a predetermined timeout period, whether the processor node(s) have the code update image stored in memory; and, if so, subsequently, operates the automated data storage library to an off-line status at one or more external interface(s); resets the processor of the at least one processor node having the stored code update image, thereby activating the code update image in place of the current code image, the processor subsequently coming up from the reset to an operational state; and, subsequently, goes to an on-line status at the external interface(s).
Thus, the library provides an update to code of the library processor(s), while minimizing the time that the library is off-line, such that the update is effectively transparent to the user or host system(s).
In another embodiment of the present invention, the automated data storage library comprises a work queue for jobs received from the host system(s), and, in operating the library to the off-line status, additionally completes the jobs in the work queue.
In a further embodiment of the present invention, the automated data storage library, in operating the library to the off-line status, reports at the external interface(s) that the automated data storage library is currently not ready and will become ready.
Thus, the library permits communication with attached host systems while the code is being updated, the communication indicating that the library will soon be on-line.
In another embodiment of the present invention, the automated data storage library additionally moves the robot accessor to a xe2x80x9chomexe2x80x9d position prior to resetting the processor(s).
Thus, the robot accessor is moved rapidly to a known position, where it may begin normal operation immediately after the update of the processors.
In still another embodiment of the invention, the inventory of data storage media located in the library is stored prior to resetting the processor(s).
For a fuller understanding of the present invention, reference should be made to the following detailed description taken in conjunction with the accompanying drawings.